var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");

// 设置 CORS 允许跨域
var allowCrossDomain = function (req, res, next) {
  // 设置允许哪一个源（域）可以进行跨域访问，* 表示所有源
  res.header("Access-Control-Allow-Origin", "*");
  // 设置允许跨域访问的请求头
  res.header(
    "Access-Control-Allow-Headers",
    "X-Requested-With,Origin,Content-Type,Accept,Authorization"
  );
  // 设置允许跨域访问的请求类型
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE");
  // 设置允许 cookie 发送到服务器
  res.header("Access-Control-Allow-Credentials", "true");
  next();
};

// 后台路由文件
var indexRouter = require("./routes/index");
var accountRouter = require("./routes/account");
var usersRouter = require("./routes/users");
var messageRouter = require("./routes/message");

const adminArticlesRouter = require("./routes/admin/articles");
require("./utils/dbConnect");
require("./db/userModel");
require("./db/messageModel");

var app = express();

app.use(allowCrossDomain);
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));

// 后台路由接口
app.use("/", indexRouter);
app.use("/account", accountRouter);

app.use("/users", usersRouter);
app.use("/admin/articles", adminArticlesRouter);
app.use("/message", messageRouter);

module.exports = app;
